var gulp = require('gulp'); // 引入核心工具
var gulp_minify_css=require("gulp-minify-css");//压缩css
//require属于CMD规范
var gulp_sass=require("gulp-sass");//编译sass文件
var gulp_uglify=require("gulp-uglify");//压缩js文件
var babel = require('gulp-babel');//将ES6代码转为ES5
//tinypng压缩图片
var tiny=require("gulp-tinypng");
//自动添加css属性的前缀
//npm i --save-dev gulp-autoprefixer
var autoprefixer=require("gulp-autoprefixer");

//复制静态资源文件 npm i --save-dev gulp-copy
var copy =require("gulp-copy"); 

var browserSync = require('browser-sync').create();//浏览器热更新
//定义自动刷新浏览器任务
gulp.task("bs",function(){
	browserSync.init({
		server:{
			baseDir:"./"
		},
		//修改端口号
		port:4000
	})
	gulp.watch("src/scss/**/*.scss" ,["sass"])
		.on("change",browserSync.reload)
});

//自定义一个任务
gulp.task("init",function(){
	console.log("init")
})
//压缩css
gulp.task("minifycss",function(){
	//文件源头
	gulp.src("src/css/**/*.css")
	     .pipe(autoprefixer({
	     	browsers:['last 2 versions','Android >= 4.0','ios 7.0','last 3 safari versions'],
	     	remove:true,
	     	cascade:true
	     }))
	     .pipe(gulp_minify_css())
	     .pipe(gulp.dest("dist/css"))
})
//编译sass
gulp.task("sass",function(){
	gulp.src("src/scss/*.scss")
	     .pipe(gulp_sass())
	     .pipe(gulp.dest("dist/scss"))
})
//监听scss,并将其转化为css
gulp.task("watchscss",function(){
	gulp.watch("src/scss/**/*.scss",["sass"])
		.on("change",function(e){
			console.log(e)
		})
})
//压缩js
gulp.task("minifyjs",function(){
//	文件源头 
	gulp.src("src/js/**/*.js") //*号代表所有
		.pipe(babel({
				presets:['env']
		}))
		.pipe(gulp_uglify())
		.pipe(gulp.dest("dist/js"));
})
//复制HTML文件
gulp.task("copyHtml",function(){
	gulp.src("src/**/*.html")
		.pipe(gulp.dest("dist/"))	
})
//压缩图片 npm install gulp-tinypng --save-dev
gulp.task("minifyimg",function(){
	//代表src/img目录下的任意文件夹中的任意文件
	gulp.src("src/img/**/*.*")
	   .pipe(tiny('s7XAma9jZvBwBRutfxhNe4VsHDaYEkSW'))
        .pipe(gulp.dest('dist/img/'));
})

//复制静态文件
gulp.task("copy",function(){
	gulp.src("src/media/**/*.*")
	    .pipe(copy("dist/media",{prefix:"2"}))
	    
})

//一键压缩css,js,HTML,img,静态文件
gulp.task("pro",["copyHtml","minifycss","minifyjs","minifyimg","copy"])
